package com.kj.tms.pri.system.user.service;


import com.kj.tms.pri.system.org.dto.OrgDto;
import com.kj.tms.pri.system.user.dto.UserOrgDto;

import java.util.List;
import java.util.Map;

/**
 * <p>项目名称：system<p>
 * <p>类名称：UserOrgService<p>
 * <p>类描述：用户所属机构业务类<p>
 *
 * @author 创建人：wangguoqing
 * @author 创建时间： 2017年10月18日 9:41
 * @author 修改人：wangguoqing
 * @author 修改时间：2017年10月18日 9:41
 * @author 修改备注：
 * @version: 2017年10月18日
 */
public interface UserOrgService {

    /**
     * @param
     * @return
     * @throws
     * @method [ListByOrgCode]
     * @description [根据 OrgDto传值条件查询机构信息]
     * @author [董世栋]
     * @version 1.0
     * @date
     */
    List<UserOrgDto> listByOrgCode(String orgCode);

    /**
     * @param userId
     * @return
     * @throws
     * @method [listOrgByUserId]
     * @description [根据用户ID获取机构]
     * @author 王国庆
     * @version 1.0
     * @date 2018年01月02日 15:31
     */
    List<OrgDto> listOrgByUserId(String userId);

    /**
     * @param userId  用户id
     * @param orgCode 机构编码
     * @return void 返回类型
     * @throws Exception
     * @Title: deleteByUser
     * @Description: 删除机构人员
     */
    void deleteByUser(String userId, String orgCode);

    /**
     * @Method
     * @Param personnelIds 人员数组   orgCode 机构编号
     * @Return
     * @Exception
     * @Description [批量删除同一机构下的选中的人员]
     * @Author zhangsong
     * @Version 1.0
     * @Date 2017/11/17 15:21
     */
    void batchDeleteByUser(String[] personnelIds, String orgCode);

    /**
     * @Method
     * @Param userId 人员Id   orgCodes 机构数组
     * @Return
     * @Exception
     * @Description [批量删除人员下的选中的机构]
     * @Author zhangsong
     * @Version 1.0
     * @Date 2017/11/17 15:21
     */
    void batchDeleteOrgByUser(String[] orgCodes, String userId);

    /**
     * 增加人员机构角色
     *
     * @param list
     */
    void batchAddUserOrg(List<UserOrgDto> list);

    /**
     * @param map
     * @return List<UserOrgRoleDto>
     * @throws
     * @method [listOrgRoleByPage]
     * @description [加载配置机构权限分页信息]
     * @author 王国庆
     * @version 1.0
     * @date 2017年12月13日 11:19
     */
    List<UserOrgDto> listOrgRoleByPage(Map map);

    /**
     * @param map
     * @return int
     * @throws
     * @method [getUserOrgRoleCount]
     * @description [加载配置机构权限信息数量]
     * @author 王国庆
     * @version 1.0
     * @date 2017年12月13日 11:19
     */
    int getUserOrgRoleCount(Map map);

    /**
     * @param map
     * @return List<UserOrgDto>
     * @throws
     * @method [listOrgByUserOrgPage]
     * @description [根据当前机构加载配置机构权限分页信息]
     * @author 王国庆
     * @version 1.0
     * @date 2017年12月14日 15:46
     */
    List<UserOrgDto> listOrgByUserOrgPage(Map map);

    /**
     * @param map
     * @return int
     * @throws
     * @method [getOrgByUserOrgCount]
     * @description [根据当前机构加载配置机构权限信息数量]
     * @author 王国庆
     * @version 1.0
     * @date 2017年12月14日 15:47
     */
    int getOrgByUserOrgCount(Map map);

}
